package com.loong.android.http.config;

import com.lzy.okgo.interceptor.HttpLoggingInterceptor;
import com.lzy.okgo.cache.CacheMode;
import java.util.logging.Level;

/**
 * 该类定义了HTTP请求相关配置的常量
 */
public class ConfigConst {
    /**
     * 定义了HTTP日志拦截器的日志级别数组
     * 包含从不打印日志到打印所有数据的四个级别
     */
    public final static HttpLoggingInterceptor.Level[] LOG_LEVEL = {
            HttpLoggingInterceptor.Level.NONE,       //不打印log
            HttpLoggingInterceptor.Level.BASIC,      //只打印 请求首行 和 响应首行
            HttpLoggingInterceptor.Level.HEADERS,    //打印请求和响应的所有 Header
            HttpLoggingInterceptor.Level.BODY        //所有数据全部打印
    };

    /**
     * 定义了日志的详细程度级别数组
     * 包含多个级别，从基本信息到最详细的调试信息和警告信息
     */
    public final static Level[] COLOR_LEVEL = {
            Level.INFO,
            Level.CONFIG,
            Level.ALL,
            Level.OFF,
            Level.FINE,
            Level.FINER,
            Level.FINEST,
            Level.SEVERE,
            Level.WARNING,
    };

    /**
     * 定义了HTTP请求缓存模式的数组
     * 包含多种缓存策略，如默认缓存、不使用缓存、请求失败后读取缓存等
     */
    public final static CacheMode[] CACHE_MODE = {
            //按照HTTP协议的默认缓存规则，例如有304响应头时缓存
            CacheMode.DEFAULT,
            //不使用缓存
            CacheMode.NO_CACHE,
            //请求网络失败后，读取缓存
            CacheMode.REQUEST_FAILED_READ_CACHE,
            //如果缓存不存在才请求网络，否则使用缓存
            CacheMode.IF_NONE_CACHE_REQUEST,
            //先使用缓存，不管是否存在，仍然请求网络
            CacheMode.FIRST_CACHE_THEN_REQUEST,
    };
}
